package ar.edu.unlam.lyc.notacionIntermedia;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.TreeMap;

public class ListaTercetos {
	private static TreeMap<String, LinkedList> tercetosFunciones;
	public static boolean ignorarTercetos = false;
	private static LinkedList tercetosIgnorados;

	private ListaTercetos() {

	}

	public static LinkedList getInstanceByAmbiente(String function) {
		if (!ignorarTercetos) {
			if (tercetosFunciones == null) {
				tercetosFunciones = new TreeMap<String, LinkedList>();
			}
			if (!tercetosFunciones.containsKey(function.toUpperCase())) {
				tercetosFunciones.put(function.toUpperCase(),
						new LinkedList<>());
			}
			return tercetosFunciones.get(function);
		} else {
			if (tercetosIgnorados == null) {
				tercetosIgnorados = new LinkedList();
			}
			return tercetosIgnorados;
		}
	}

	public static void marcarEtiquetados() {
		Iterator iter = getInstanceByAmbiente("MAIN").iterator();
		while (iter.hasNext()) {
			Terceto t = (Terceto) iter.next();
			if (t.a.startsWith("b")) {
				int i = new Integer(t.c).intValue();
				Terceto aux = (Terceto) (getInstanceByAmbiente("MAIN")
						.get(i - 1));
				aux.preEtiquetado = true;
			}
		}
	}
}